package cn.edu.cxcyzx.util;

import java.sql.Timestamp;

import com.alibaba.fastjson.JSONObject;

import cn.edu.cxcyzx.conf.Git;
import cn.edu.cxcyzx.dao.GiteeDao;
import cn.edu.cxcyzx.entity.Gitee;

/**
 * gitee:access_token 有效期为一天，过期后通过 refresh_token 方式重新获取 access_token（ POST请求 ）
 * @author zxl
 * @date   2018年6月24日下午3:42:18
 * @描述:
 *
 */
public class Update_giteeAccessToken {
	
	/**
	 * 更新token
	 * @param gitee
	 * @param giteeDao
	 * @return	Gitee
	 */
	public static Gitee update(Gitee gitee,GiteeDao giteeDao){
		Timestamp timestamp=gitee.getUpdateTime();
		long g=timestamp.getTime();
		long now=System.currentTimeMillis();
		System.out.println("时间差:"+(now-g)/(1000*60*60));
		if((now-g)/(1000*60*60)>24){
			//判断是否过了有效期
			JSONObject jsonObject=new JSONObject(2);
			jsonObject.put("grant_type", "refresh_token");
			jsonObject.put("refresh_token",gitee.getRefresh_token());
			/**
			 * 获取新的access_token
			 */
			JSONObject res=HttpClientUtil.doPost(Git.gitee_token_url, jsonObject);
			String access_token=res.getString("access_token");
			String refresh_token=res.getString("refresh_token");
			Gitee update_g=new Gitee(gitee.getUserId(), access_token, refresh_token);
			/**
			 * 更新token
			 */
			giteeDao.update_giteeToken(update_g);
			
			gitee.setAccess_token(access_token);
			gitee.setRefresh_token(refresh_token);
			return gitee;//返回修改后的Gitee
		}
		return gitee;
	}
}
